package com.hhq.demo.service.impl;

import com.hhq.demo.bean.Courier;
import com.hhq.demo.bean.CourierList;
import com.hhq.demo.dao.CourierDao;
import com.hhq.demo.dao.ExpressDao;
import com.hhq.demo.dao.impl.CourierDaoImpl;
import com.hhq.demo.dao.impl.ExpressDaoImpl;
import com.hhq.demo.service.CourierService;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author HHQ
 * @date 2021年12月16日
 */
public class CourierServiceImpl implements CourierService {

    CourierDao courierDao = new CourierDaoImpl();
    ExpressDao expressDao = new ExpressDaoImpl();

    /**
     * 查询控制台需要的数据
     *
     * @return map集合数据
     */
    @Override
    public Map<String, Object> consoleData() {
        return courierDao.consoleData();
    }

    /**
     * 查询所有快递员信息
     *
     * @return 快递员集合
     */
    @Override
    public List<CourierList> listAll() {
        return courierDao.listAll();
    }

    /**
     * 分页查询快递员信息
     *
     * @param offset     起始索引
     * @param pageNumber 每页显示数量
     * @return 快递员信息集合
     */
    @Override
    public List<CourierList> listLimit(Integer offset, Integer pageNumber) {
        return courierDao.listLimit(offset, pageNumber);
    }

    /**
     * 新增快递员
     *
     * @param courier 快递员
     * @return 受影响的行数
     */
    @Override
    public int insert(Courier courier) {
        return courierDao.insert(courier);
    }

    /**
     * 修改快递员信息
     *
     * @param id      要修改的快递员的id
     * @param courier 要修改的快递员的信息
     * @return 受影响的行数
     */
    @Override
    public int update(Integer id, String phone, Courier courier) {
        int flag = 0;
        if (courier.getPhone() == null) {
            flag = courierDao.update(id, courier);
        } else {
            // TODO:此处修改手机号码之前还需要将express表中录入的手机号码修改
            flag = courierDao.updateAndPhone(id,courier);
        }
        return flag;
    }

    /**
     * 根据取件码删除快递员
     *
     * @param id id
     * @return 受影响的行数
     */
    @Override
    public int deleteById(Integer id) {
        return courierDao.deleteById(id);
    }

    /**
     * 根据手机号查询快递员信息
     *
     * @param phone 快递员手机号
     * @return 快递员信息
     */
    @Override
    public Courier findByPhone(String phone) {
        return courierDao.findByPhone(phone);
    }

    /**
     * 根据旧手机号码修改用户名
     *
     * @param phone    旧手机号码
     * @param username 要修改的用户信息
     */
    @Override
    public void updateUsername(String phone, String username) {
        courierDao.updateUsername(phone,username);
    }
}
